package com.locus.locus.client;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.locus.locus.client.dados.ConfiguracaoBoxWrapper;
import com.locus.locus.client.dados.ConfiguracaoConjuntoBoxesWrapper;
import com.locus.locus.client.dados.ConjuntoBoxesWrapper;
import com.locus.locus.client.dados.EstabelecimentoWrapper;
import com.locus.locus.client.dados.SiteWrapper;
import com.locus.locus.client.dados.UsuarioLocusWrapper;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface ServidorAsync {

	void buscarUsuario(String urlDestino, AsyncCallback<UsuarioLocusWrapper> callback);

	void buscarUsusarios(String where,
			AsyncCallback<List<UsuarioLocusWrapper>> callback);

	void buscarUsusarios(AsyncCallback<List<UsuarioLocusWrapper>> callback);

	void inserirUsuario(UsuarioLocusWrapper usuario,
			AsyncCallback<Void> callback);

	void excluirUsuario(UsuarioLocusWrapper usuario,
			AsyncCallback<Void> callback);

	void excluirExtabelecimento(EstabelecimentoWrapper estabelecimento,
			AsyncCallback<Void> callback);

	void buscarEstabelecimentos(
			AsyncCallback<List<EstabelecimentoWrapper>> callback);

	void buscarConfiguracaoConjuntoBoxes(AsyncCallback<ConfiguracaoConjuntoBoxesWrapper> callback);

	void inserirExtabelecimento(EstabelecimentoWrapper estabelecimento,
			AsyncCallback<Void> callback);

	void inserirBoxConjuntoConfiguracao(ConfiguracaoBoxWrapper box,
			AsyncCallback<Void> callback);

	void excluirBoxConjuntoConfiguracao(ConfiguracaoBoxWrapper box,
			AsyncCallback<Void> callback);

	void inserirConfiguracoesBox(ConfiguracaoBoxWrapper box, AsyncCallback<Void> callback);

	void excluirConfiguracoesBox(ConfiguracaoBoxWrapper box, AsyncCallback<Void> callback);

	void buscarConfiguracoesBoxes(AsyncCallback<List<ConfiguracaoBoxWrapper>> callback);

	void buscarConjuntoBoxes(AsyncCallback<ConjuntoBoxesWrapper> callback);

	void buscarSite(String site, AsyncCallback<SiteWrapper> callback);

	void wipeData(AsyncCallback<Void> callback);

}
